<?php

namespace common\models\base;

use Yii;
use common\helpers\Url;

/**
 * This is the model class for table "{{%base_express}}".
 *
 * @property int $id
 * @property string $name 公司名称
 * @property string|null $abbr 字母简写
 * @property string|null $brand 公司LOGO
 * @property string|null $thumb 缩略图
 * @property string|null $telephone 公司电话
 * @property int $type 类型：0快递，10物流，20国际货运
 * @property int $common 常用
 * @property string|null $code 接口代码
 * @property string|null $mark 备注
 * @property int $listorder 显示排序
 * @property int $disabled 开启状态：0开启，1关闭
 */
class BaseExpress extends \common\db\ActiveRecord {

    public static $storeId;

    /**
     * {@inheritdoc}
     */
    public static function tableName() {
        return '{{%base_express}}';
    }

    /**
     * {@inheritdoc}
     */
    public function rules() {
        return [
            [['name'], 'required'],
            [['type', 'common', 'listorder', 'disabled'], 'integer'],
            [['name', 'telephone'], 'string', 'max' => 50],
            [['abbr', 'code'], 'string', 'max' => 20],
            [['brand', 'thumb', 'mark'], 'string', 'max' => 255],
            [['regx'], 'string'],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function attributeLabels() {
        return [
            'id' => 'ID',
            'name' => '公司名称',
            'abbr' => '字母简写',
            'brand' => '公司LOGO',
            'thumb' => '缩略图',
            'telephone' => '公司电话',
            'type' => '类型：0快递，10物流，20国际货运',
            'common' => '常用',
            'code' => '接口代码',
            'mark' => '备注',
            'listorder' => '显示排序',
            'disabled' => '开启状态：0开启，1关闭',
        ];
    }

    public function getStoreExpress() {
        return $this->hasOne(\common\models\shop\ShopStoreExpress::class, ['express_id' => 'id'])->andWhere([
            'store_id' => static::$storeId
        ]);
    }

    public function getStoreCommon() {
        return $this->getStoreExpress()->exists();
    }

    public function getThumbUrl() {
        return Url::attach($this->thumb);
    }

    public function getLogo() {
        $brand = $this->brand ?: '/assets/undefind.jpg';
        return Url::attach($brand);
    }

    public static function findByList($storeId = null) {
        static::$storeId = $storeId;
        return static::find()->active()->all();
    }

    public function fields() {
        return [
            'id',
            'name',
            'thumb',
            'logo',
            'common',
            'telephone',
            'type',
            'abbr',
            'code',
            'regx',
            'listorder',
            'storeCommon',
        ];
    }

}
